// 序列化 ，js--json, 按照一定的要求进行字符串输出
// 反序列化， 就是将json 变成js对象
var xiaoming = {
    name: '小明',
    age: 14,
    gender: true,
    height: 1.65,
    grade: null,
    'middle-school': '\"W3C\" Middle School',
    skills: ['JavaScript', 'Java', 'Python', 'Lisp']
};
var s = JSON.stringify(xiaoming);
console.log(s);

// 要输出得好看一些，可以加上参数，按缩进输出：
var s = JSON.stringify(xiaoming, null, '  ');
console.log(s);

console.log(JSON.stringify(xiaoming, ['name', 'skills'], '  '));


function convert(key, value) {
    if (typeof value === 'string') {
        return value.toUpperCase();
    }
    return value;
}
console.log(JSON.stringify(xiaoming, convert, ' '))


console.log('-----------反序列化---------');
console.log(JSON.parse('[1,2,3,true]'));
JSON.parse('{"name":"小明","age":14}'); // Object {name: '小明', age: 14}
JSON.parse('true'); // true
JSON.parse('123.45'); // 123.45